// pages/zhuye/zhuye.js
Page({
  data: {
    currentTab: 0,           // 当前激活的tab索引
    currentDate: '',
    deviceId: 1,  // 转换为数字     // 默认设备ID
    tempDeviceId:1 , // 临时存储用户输入的设备ID
    heartRate: '--',
    stepFrequency: '--',
    strideLength: '--',
    temperature: '--',
    mode: '--',
    deviceStatus: '--',
    dataUpdateTimer: null
  },
 
  switchTab(e) {
        const yemian = e.currentTarget.dataset.index;
        this.setData({ currentTab: yemian });
    
        const pages = [
          '/pages/zhuye/zhuye',
          '/pages/dongtai/dongtai',
          '/pages/tianjia/tianjia',
          '/pages/shebei/shebei',
          '/pages/wode/wode'
        ];
    
        if (yemian === 0) {
          wx.switchTab({ url: pages[0] });
        } else {
          wx.redirectTo({ url: pages[yemian] });
        }
      },
  

  onLoad() {
    this.updateDate();
    this.fetchDeviceData();
    this.startDataPolling();
  },

  onShow() {
    this.fetchDeviceData();
  },

  onUnload() {
    if (this.data.dataUpdateTimer) {
      clearInterval(this.data.dataUpdateTimer);
      this.setData({ dataUpdateTimer: null });
    }
  },

  updateDate() {
    const date = new Date();
    this.setData({
      currentDate: `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`
    });
  },

  startDataPolling() {
    this.setData({
      dataUpdateTimer: setInterval(() => {
        this.fetchDeviceData();
        console.log('定时轮询数据更新...');
      }, 10000)  // 10秒轮询一次数据
    });
  },
// 处理设备ID输入
onDeviceIdInput(e) {
  this.setData({
    tempDeviceId: e.detail.value
  });
},

// 更新设备ID并重新获取数据
updateDeviceId() {
  if (!this.data.tempDeviceId || this.data.tempDeviceId.trim() === '') {
    wx.showToast({
      title: '设备ID不能为空',
      icon: 'none'
    });
    return;
  }

  this.setData({
    deviceId: this.data.tempDeviceId
  }, () => {
    // 更新设备ID后立即获取新设备的数据
    this.fetchDeviceData();
    wx.showToast({
      title: '设备ID已更新',
      icon: 'success'
    });
  });
},
fetchDeviceData() {
  const now = new Date();
  const startTime = new Date(now.getTime() - 120000);
  const endTime = now;

  wx.request({
    url: 'http://8.137.20.120:5000/api/data/query',
    method: 'POST',
    data: {
      device_id: Number(this.data.deviceId), // 在这里将字符串转换为数字
      start_time: this.formatTime(startTime),
      end_time: this.formatTime(endTime)
    },
    success: (res) => {
      console.log('请求成功', res.data);
      if (res.data.status === 'success') {
        const records = res.data.data;
        if (records && records.length > 0) {
          const latest = records[records.length - 1];
          this.updateDeviceData({
            deviceId: latest.device_id,
            heartRate: latest.heart_rate,
            stepFrequency: latest.stride_frequency,
            strideLength: latest.stride_length,
            temperature: latest.temperature,
            mode: latest.mode,
            status: latest.connection_status ? '正常' : '异常'
          });
        } else {
          // 没有找到数据时显示提示
          wx.showToast({
            title: '未找到设备数据',
            icon: 'none'
          });
          // 重置显示为默认值
          this.updateDeviceData({
            deviceId: this.data.deviceId,
            heartRate: '--',
            stepFrequency: '--',
            strideLength: '--',
            temperature: '--',
            mode: '--',
            status: '--'
          });
        }
      }
    },
    fail: (err) => {
      console.error('请求失败', err);
      wx.showToast({ title: '数据加载失败', icon: 'none' });
    }
  });
},

  formatTime(date) {
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ` +
           `${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`;
  },

  updateDeviceData(data) {
    this.setData({
      //deviceId: data.deviceId || '--',
      heartRate: data.heartRate ?? '--',
      stepFrequency: data.stepFrequency !== undefined ? data.stepFrequency.toFixed(2) : '--',
      strideLength: data.strideLength !== undefined ? data.strideLength.toFixed(2) : '--',
      temperature: data.temperature !== undefined ? data.temperature.toFixed(1) : '--',
      mode: data.mode || '--',
      deviceStatus: data.status || '--'
    });
  },

  handleCheckIn() {
    wx.showToast({ title: '签到成功！', icon: 'success' });
  }
});
